home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 19
/
CD_ASCQ_19_010295.iso
/
dos
/
prg
/
pas
/
swag
/
crc.swg
/
0001_16BITCRC Routines.pas
next >
Wrap
Pascal/Delphi Source File
|
1993-05-28
|
671b
|
35 lines
{
>I'm looking For code to calculate the CRC32 of a series of Characters.
...Unless you're CRCing a very large amount of data, this CRC-16
routine should do.
NOTE: This routine requires either TP6 or TP7 to compile.
}
{ Return a 16-bit CRC number For binary data. }
Function Crc16(Var Data; wo_Size : Word) : Word; Assembler;
Asm
push ds
xor dx, dx
lds si, Data
mov bx, wo_Size
@L1:
xor ah, ah
lodsb
mov cx, 8
shl ax, cl
xor dx, ax
mov cx, 8
@L2:
shl dx, 1
jnc @L3
xor dx, $1021
@L3:
loop @L2
dec bx
jnz @L1
pop ds
mov ax, dx
end; { Crc16. }